#include<iostream>


//单例模式:一个类只能创建一个对象
//1.构造函数私有化
//2.提供一个静态函数接口，返回对象指针
//3.定义静态局部变量，返回变量指针
//
class Singleton
{
public:
    static Singleton* GetInstance()
    {
        static Singleton s;//只初始化一次
        return &s;
    }

    void show()
    {


        std::cout<<"helloworld\n";
    }


private:
    Singleton(){}//构造函数私有化

};


int main()
{

    Singleton*s1=Singleton::GetInstance();
    Singleton*s2=Singleton::GetInstance();
    Singleton*s3=Singleton::GetInstance();
    printf("%p %p %p \n",s1,s2,s3);
    s1->show();
    s2->show();
    s3->show();
    
    return 0;
}